package actions;

import java.util.Map;

import org.apache.struts2.interceptor.SessionAware;

import modelo.Usuario;

import DAO.FactoryDAO;
import DAO.UsuarioDAO;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class usuarioModificaDatos extends ActionSupport implements SessionAware {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String name;
	private String nombre;
	private String apellido;
	private String telefono;
	private String email;
	private Usuario user = new Usuario();
	private UsuarioDAO userDAO = FactoryDAO.getUsuarioDAO();
	private Map<String, Object> session;

	public String execute() {
		session = ActionContext.getContext().getSession();
		user = userDAO.buscarUsuario(((Usuario)session.get("usuario")).getId());
		user.setName(name);
		user.setTelefono(telefono);
		user.setEmail(email);
		user.setNombre(nombre);
		user.setApellido(apellido);
		userDAO.modificar(user);
		session.put("usuario", user);
		return "SUCCESS";
	}

	public void validate() {
		
		if (getName().equals("")) {
			addFieldError("name", getText("global.usuarioVacio"));
		} else {
			UsuarioDAO uDAO = FactoryDAO.getUsuarioDAO();
			if (uDAO.existe(getName())) {
				addFieldError("name", getText("global.usuarioNombreExiste"));
			}
		}

	}

	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	@Override
	public void setSession(Map<String, Object> arg0) {
		// TODO Auto-generated method stub

	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getApellido() {
		return apellido;
	}

	public void setApellido(String apellido) {
		this.apellido = apellido;
	}
}
